Desenvolvimento para Dispositivos Móveis
Aula 04
Prof. Dr. Raulcézar Alves
raulcezar@gmail.com
Salvando dados localmente
Shared Preferences
- salvar dados locais
- armazenar dados não voláteis, que não se alteram com frequência, como login do usuário no App
- dados que devem ter disponibilidade rápida
- não é indicado para armazenar grandes volumes de dados, para isso é necessário usar um bando de dados remoto
Salvando dados localmente
Shared Preferences
- armazena dados numa estrutura de hash com chave-valor (key-value)
- key: são identificadores para os dados, que não se repetem (não colidem), por exemplo, para salvar os dados de uma pesssoa o CPF poderia ser usado como key
- value: é a informação que se deseja salvar, podendo ser de vários tipos, como: int, float, Strings, booleans e sets de Strings
Salvando dados localmente
Shared Preferences
- para criar uma SharedPreferences é necessário passar um nome e um modo de funcionamento
- o nome define uma área de armazenamento dentro do App, como um esquema de banco de dados
- existem vários modos, o que utilizaremos é o privado que permite apenas nosso App ler e escrever
- uma vez criado, é possível armazenar dados na estrutura através de um PUT passando "key","value"
- para recuperar um dado basta utilizar o método GET passando "key" para se recuperar o "value"
Salvando dados localmente
Criar classe para gerenciar nosso SharedPreference
- utilizaremos SharedePreferences para armazenar dados de IMC de cada pessoa da família
- key: a chave será o nome da pessoa, digitada no campo Nome do App
- value: será armazenado o peso, altura, imc e classificação da pessoa
Salvando dados localmente
Criar classe para gerenciar nosso SharedPreference
- Botão direito na pasta java >> New >> Java Class
Salvando dados localmente
Criar classe para gerenciar nosso SharedPreference
- dar nome de "ArmazenamentoIMC" para a classe e salvar em um novo pacote .utils
Salvando dados localmente
Criar classe para gerenciar nosso SharedPreference
- instanciando um SharedPreferences
Salvando dados localmente
Criar classe para gerenciar nosso SharedPreference
- salvando key,value no SharedPreferences criado
Salvando dados localmente
Criar classe para gerenciar nosso SharedPreference
- buscando todos os dados do SharedPreferences
Salvando dados localmente
Classe PessoaIMC
- os dados que vamos armazenar no nosso SharedPreferences são referentes ao IMC de uma pessoa: nome, peso, altura, imc e classificação
- para armazenar esses dados de forma organizada, vamos criar mais uma classe dentro do pacote .utils que encapsula essas informações
- essa classe será chamada de PessoaIMC e terá os atributos: String nome, Double peso, Double altura, Double imc, String classificacao
- crie também um construtor com todos esses campos
Salvando dados localmente
Serialização
Armazenamento no SharedPreferences
- como vimos, SharedPreferences armazena key e value
- vamos usar o nome da pessoa como key
- value será um objeto da classe PessoaIMC com todos os dados dentro
- porém, SharedPreferences não armazena objetos do tipo PessoaIMC como value, apenas tipos como: int, float, Strings, booleans e sets de Strings
- para isso, vamos serializar o objeto e transformá-lo em um String JSON
Serialização
Serialização
Serialização
Adicionando biblioteca para serialização
- abra o arquivo Gradle Scripts >> build.gradle (Module: app)
- adicione implementation 'com.google.code.gson:gson:2.8.2' nas dependências
- salve e compile para forçar o download
- após isso, será possível utilizar métodos de serialização e deserialização nas classes java
Serialização
Salvando dados
Modificar MainActivity.java
- declarar ArmazenamentoIMC para utilizar métodos de salvar e buscar dados da SharedPreferences
- declarar Gson para serializar e deserializar dados da SharedPreferences
- no método onCreate inicialize ArmazenamentoIMC passando this como contexto
Serialização
Salvando dados
Modificar MainActivity.java
- criar método Salvar que faça:
- 1) recuperar todos os dados da tela: nome, peso, altura, imc e classificação
- 2) instanciar um objeto da classe PessoaIMC e colocar todos esses dados dentro
- 3) serializar esse objeto para uma String JSON
- 4) salvar na SharedPreferences
- 5) limpar os campos
Serialização
Salvando dados
Modificar activity_main.xml
- adicionar mais um botão na tela que chama o método Salvar